1. Field of the Invention
The present invention relates to a method of detecting a movement of an object in a moving motion picture and to an apparatus for performing the method.
2. Description of the Prior Art
A method of detecting a movement of an object in a series of time consecutive motion pictures is commonly used for motion-compensated interframe coding in the technical field of motion picture coding.
One of the conventional motion detecting apparatuses will be explained referring to the drawings.
FIG. 5 is a block diagram of a conventional motion detecting apparatus employing the known block matching method. FIG. 6 is an explanatory diagram showing this motion detecting method. Provided in the apparatus of FIG. 5 are a buffer memory 1, an error calculating circuit 2, an error comparing circuit 3, and an address generating circuit 4. In FIG. 6, the numeral 61 represents a two-dimensional block in a t-th frame picture, 62 is a block in a (t-1)th frame picture for which errors from the block 61 are calculated, and 63 is a motion vector calculated by motion detection.
It is assumed that the t-th frame is a reference frame and a motion vector between the (t-1)th frame and the t-th frame is calculated for each two-dimensional block formed of mxn pixels. The picture data of each frame are first stored into the buffer memory 1 and then read out on a block by block basis. The two-dimensional block 61 shown in FIG. 6 is a reference block in the t-th frame having a center coordinate point S(x,y,t) and its displacement from the (t-1)th frame is calculated. The buffer memory 1 stores the picture data of the (t-1)th frame as well as the picture data of the t-th frame. First, data of a two-dimensional block having a center coordinate point (x,y,t-1) is retrieved from the memory 1. Then, the error calculating circuit 2 calculates a sum of the square errors between the picture data amplitudes of the two blocks as expressed by: ##EQU1## and transmits the result to the error comparing circuit 3. Then, the address generating circuit 4 produces an address signal for a succeeding block shifted by one horizontal pixel from the reference block in the (t-1)th frame and having a center coordinate point S(x+1, y, t-1). Also, the error calculating circuit 2 calculates .sigma.0(+1,0) and transmits it to the error comparing circuit 3. The error comparing circuit 3 then compares .sigma.0(0,0) and .sigma.0(+1,0) and selects a smaller of the two. Each sum of errors .sigma.0(xh,yv) are calculated in the same manner as above in the range of -h&lt;xh&lt;h and -v&lt;yv&lt;v. These operations calculate differences between the reference block in the t-th frame and the J blocks in the (t-1)th frame having the center coordinate points within an area (-h&lt;xh&lt;h, -v&lt;yv&lt;v) shown by the dotted line in FIG. 6. The error comparing circuit 3 selects a smallest .sigma.0(mx,my) from among .sigma.0(xh,yv) and outputs an address (mx,my). Hence, the motion vector 63 of S(x,y,t) is expressed by mv(mx,my). Similarly, the motion vectors of the other blocks in the t-th frame can be calculated by repeating the foregoing operations. (For example, see "Digital pictures" by Natravali, Haskell, PLENUM 1988, pp. 334-340.)
Such a conventional motion detecting apparatus can detect the movement of an object in each block of a picture but fails to detect a movement of the entire picture. The movement of the entire picture may be calculated by averaging the motion vectors of all blocks. However, the averaged motion vector is inaccurate when there are many detected vectors which mismatch with the real motion of the object or when the magnitude of the mismatching is large. Also, there is no theoretical solution for accurately processing the round caused due to averaging calculation.